#ifndef __TASKQUEUE__
#define __TASKQUEUE__

#define LOGIN 1
#define LOGOUT 0
#include "sys.h"
#include "train.h"

// 存储创建线程所需的资源
typedef struct {                                                 
    int netfd;
    int islogin;
    char root[1024];        // 隐藏目录，不用户所知
    char my_pathname[1024]; // 每个用户有其单独的目录
} userInfo;                                                                

typedef struct task_s{
    train_t* train;       // 工人线程负责处理指令
    userInfo* info;
    struct task_s *pNext;
}task_t;

// 任务队列
typedef struct taskQueue_s{
    task_t *pFront;
    task_t *pRear;
    int queueSize;
    pthread_mutex_t mutex;
    pthread_cond_t cond;
}taskQueue_t;

int taskEnQueue(taskQueue_t *pQueue, train_t* train, userInfo* netfd);
int taskDeQueue(taskQueue_t *pQueue);

#endif


